home *** CD-ROM | disk | FTP | other *** search
- Path: bloom-beacon.mit.edu!hookup!swrinde!cs.utexas.edu!uunet!ams.amsinc.com!162.70.244.20!jwarring
- From: jwarring@fmsaix.amsinc.com (Jeff Warrington)
- Newsgroups: comp.unix.aix,comp.answers,news.answers
- Subject: AIX Frequently Asked Questions (Part 1 of 3)
- Supersedes: <1480@mavrick.UUCP>
- Followup-To: comp.unix.aix
- Date: 31 Mar 1994 02:39:29 GMT
- Organization: American Management Systems, Inc.
- Lines: 1894
- Approved: news-answers-request@MIT.EDU
- Distribution: world
- Expires: 30 Apr 94 01:23:45 GMT
- Message-ID: <3000@flAIXy.fd.amsinc.com>
- Reply-To: jwarring@flAIXy.fd.amsinc.com
- NNTP-Posting-Host: flaixy.fd.amsinc.com
- Summary: This posting contains a list of Frequently Asked Questions
- and their answers about AIX, IBM's version of Unix.
- Keywords: AIX RS/6000 questions answers
- Xref: bloom-beacon.mit.edu comp.unix.aix:22835 comp.answers:4351 news.answers:17013
-
- Archive-name: aix-faq/part1
- Last-modified: March 23, 1994
- Version: 3.00
-
-
- Okay, so I still don't quite understand how my first attempt at
- posting the FAQ got redirected to for *.answers approval, but hey, if
- you'll forgive me I promise the next posting shouldn't take so long!
- Thanks to everyone who sent in updates, I appreciate the help!
-
-
- Frequently Asked Questions to AIX 3.x and IBM RS/6000
- _____________________________________________________
-
- This posting contains frequently asked questions and answers about the
- IBM RS/6000 series workstations and AIX version 3. All input is very
- welcome, please mail to me at basto@cactus.org. You can also use
- cs.utexas.edu!mavrick!luis.
-
- The list is split into three articles to pass thru most mailers. I'll
- usually try to post them once a month to comp.unix.aix, news.answers,
- and comp.answers. Please let your input continue as I am most thankful
- for all of it.
-
- If you see a From: line it means that whatever follows is either an
- unabridged or slightly edited version of the input I have received, and
- that I may not have verified its contents. If there is no From: line, I
- probably know what I am talking about, and the entry is edited from
- various sources.
-
- All entries are numbered with major and minor subject number, e.g.
- 2.11. If the subject is preceded by an asterisk, that entry has been
- changed or added since the last posting.
-
- The comp.unix.aix group is for AIX on all IBM platforms -- RT, PS/2,
- 370, RS/6000 and mainframes (ESA based on OSF/1), but the traffic has
- evolved to discuss predominantly AIX 3.x and the RS/6000. The
- newsgroups comp.sys.ibm.pc.rt and comp.sys.ibm.ps2.hardware cover the
- RT, mostly hardware and AOS 4.3, and on PS/2 hardware respectively.
- Mark Whetzel posts FAQ lists about RTs in the rt and *.answers groups.
- There are few to non-existent discussions on AIX/370 and AIX/ESA.
-
- This article covers only AIX 3.x and the RS/6000, except when noted.
-
- If you post questions to comp.unix.aix, please be sure to indicate:
-
- - the machine type and brief configuration, e.g. Model 540, 64 MB RAM,
- 48 MB swap space (this is actually bad), 1.2 GB XYZ hard drive, etc.
- Note: There are now three classes of RS/6000s - the original, RS or
- POWER, RS/2 or POWER2, and PowerPC.
-
- - the exact AIX version number, i.e. AIX 3.1 is NOT sufficient, whereas
- AIX 3.1.5 or AIX 3.1 with the 3005 update is. With 3.2 you should
- mention any significant ptfs using the U4xxxxx numbers.
-
- I am doing this on my own time. Please do not ask me questions that
- should be asked to IBM. If you suspect you have software defect problems
- call (800) 237-5511. If you have hardware problems call (800) IBM-SERV.
- ______________________________________________________________________________
-
- Table of contents:
-
- 1.0 General concepts
- 1.000 The AIX operating system - what is it?
- 1.001 I know neither Unix nor AIX - where do I find more information?
- 1.002 What is the Object Database?
- 1.003 How do I get rid of the verbose error messages?
- 1.004* Which release of AIX do I have?
-
- 1.1 SMIT, system administration, file systems
- 1.100 I am used to Unix systems programming, why should I learn SMIT?
- 1.101 How do I turn off the "running man" in smit?
- 1.102 How do I import an /etc/passwd or /etc/group file from another box?
- 1.103 Cleaning up utmp, who, and accounting problems
- 1.104 How to fsck the root filesystem
- 1.105 How can I unmount /usr to run fsck on it?
- 1.106 How do I shrink /usr?
- 1.107 How do I make a filesystem larger than 2 Gig?
- 1.108 How do I see/change system parameters like number of processes per user?
- 1.109 How do I shrink the default paging space on hd6?
- 1.110 The swapper seems to use enormous amounts of paging space, why?
- 1.111 How much paging space do I need?
- 1.112 How do I mount a floppy disk as a filesystem?
- 1.113 How do I remove a committed lpp?
- 1.114 How can I recover space after installing updates?
- 1.115 Where are the AIX log files kept?
- 1.116 How can I log information about ftp accesses to a file?
- 1.117 How do I find a file name from the inode number?
- 1.118 How do I set up postscript accounting?
- 1.119 How do I create boot diskettes for 3.2?
- 1.120* Where can I find tools for performance monitoring?
- 1.121 How can I tell what virtual printer a print queue is using?
- 1.122 Two srcmstr's are less useful than one?
- 1.123 How do I set the tty name associated with a physical port?
- 1.124 How do I use mksysb to clone a system?
- 1.125 How do I retain timestamps with mksysb?
- 1.126* How can I find out the machine type?
- 1.127 Updating to 3.2.5
- 1.128 AIX fix strategy
- 1.129 Are passwords limited to 8 char?
- 1.130 How do I increase the number of ptys > 64?
- 1.131 CERT advisories on sendmail and xterm
-
- 1.2 Backups, tape
- 1.200* Some info about tape backups
- 1.201 How do I do remote backup?
- 1.202 How do I backup a multi-disk volume group?
- 1.203 How do I put multiple backups on a single 8mm tape?
- 1.204 How can I make an exact duplicate of a tape over the network?
- 1.205 What is tape block size of 0?
- 1.206 Resetting a hung tape drive...
- 1.207* How do I read a mksysb tape with tar?
-
- 1.3 Memory and process management
- 1.300 Some info about the memory management system
- 1.301 How much should I trust the ps memory reports?
-
- 1.4 Shells, commands, man pages, InfoExplorer
- 1.400 How do I make an informative prompt in the shell?
- 1.401 How do I set up ksh for emacs mode command line editing?
- 1.402 Listing files with ls causes a core dump
- 1.403 How do I put my own text into InfoExplorer?
- 1.404 InfoExplorer ASCII key bindings
- 1.405 How can I add new man pages to the system?
-
- 1.5 Video, Graphics, X11
- 1.500 Which release of X11 do I have?
- 1.501 How to prevent ctrl-alt-backspace from killing the X session
- 1.502 Who has a termcap/terminfo source for aixterm or the HFT console?
- 1.503* How can I look at PostScript files? Why is "dpsexec" so lousy?
- 1.504* unix:0 vs `hostname`:0
- 1.505 VT100 key bindings for aixterm
- 1.506 Is there a screen saver that does not use excessive CPU?
-
- 1.6 Networks and communications
- 1.600 My named dies frequently, why?
- 1.601 How do I trace ethernet packets on an AIX system?
- 1.602 What is the authorized way of starting automount at boot time?
- 1.603 How do I set a tty port for both dial-in and dial-out?
- 1.604 How to move or copy whole directory trees across a network
- 1.605 How can I send mail to hosts that cannot be pinged?
- 1.606 How to configure dialup SLIP
- 1.607 Where is DCE discussed?
- 1.608 How do I make /var/spool/mail mountable?
-
- 1.7
- 1.8
-
- 1.9 Miscellaneous
- 1.900 SCSI-1 and SCSI-2 "interoperability" got you confused?
- 1.901 How to get your keyboard back after unplugging it from the 6000
- 1.902 How do I set up pcsim, the DOS emulator?
- 1.903 How do I transfer files between AIX and DOS disks?
-
-
- 2.00 C/C++
- 2.01 I cannot make alloca work
- 2.02 How do I compile my BSD programs?
- 2.03 Isn't the linker different from what I am used to?
- 2.04* How do I link my program with a non-shared /lib/libc.a?
- 2.05 How do I make my own shared library?
- 2.06 Linking my program fails with strange error, why?
- 2.07* What's with malloc()?
- 2.08 Why does xlc complain about 'extern char *strcpy()'
- 2.09 Why do I get 'Parameter list cannot contain fewer ....'
- 2.10 Why does xlc complain about '(sometype *)somepointer = something'
- 2.11 Some more common errors
- 2.12* Can the compiler generate assembler code?
- 2.13 Curses
- 2.14 How do I speed up linking?
- 2.15 What is deadbeef?
- 2.16 How do I statically link in 3.2?
- 2.17 How do I make an export list from a library archive?
-
- 3.00 Fortran and other compilers
- 3.01 I have problems mixing Fortran and C code, why?
- 3.02 How do I statically bind Fortran libraries and dynamically bind
- C libraries?
- 3.03 How do I check if a number is NaN?
- 3.04 Some info sources on IEEE floating point
-
- 4.00 GNU and Public Domain software
- 4.01 How do I find PD software?
- 4.02 Are there any ftp sites?
- 4.03* General hints
- 4.04 GNU Emacs
- 4.05 gcc/gdb
- 4.06 GNU Ghostscript
- 4.07 TeX
- 4.08 Perl
- 4.09* X-Windows
- 4.10 bash
- 4.11 Elm
- 4.12 Oberon 2.2
- 4.13 Kermit
- 4.14 Gnu dbm
- 4.15 tcsh
- 4.16 Kyoto Common Lisp
- 4.17 Tcl/Tk
- 4.18 Expect
- 4.19 Public domain software on CD
- 4.20 Andrew Toolkit
- 4.21 sudo
- 4.22 Flexfax and other fax software
- 4.23 lsof
-
- 5.00 Third party products
- 5.01* IBM List of third party products
- 5.02 Disk/Tape/SCSI
- 5.03 Memory
- 5.04 Others
- 5.05* C++ compilers
- 5.06* Memory leak detectors
- 5.07 PPP
-
- 6.00 Miscellaneous other stuff
- 6.01 Can I get support by e-mail?
- 6.02 List of useful faxes
- 6.03* List of 3.2 ptfs
- 6.04 Some RS232 hints
- 6.05 What publications are available for AIX and RS/6000?
- 6.06 Some acronyms
- 6.07 How do I get this by mailserver or ftp?
- 6.08 Hypertext version of the FAQ
- 6.09 Where can I send suggestions for tools?
-
- 7.00 Contributors
-
- ______________________________________________________________________________
- 1.000: The AIX operating system - what is it?
-
- This is best answered by reading the text files in /usr/lpp/bos. The
- README file there contains general information and the BSD files contain
- useful information if you know BSD and/or System V.
-
- The last release for the RT PC is 2.2.1. The latest release for PS/2s
- and Intel architecture machines is AIX 1.3; for PS/2s only, 1.2.1. For
- the RS/6000, there are two major levels, 3.1 and 3.2, and various
- intermediate levels. IBM has dropped support for 3.1.
-
-
- 1.001: I know neither Unix nor AIX - where do I find more information?
-
- If you are new to Unix, you should look at the other newsgroups in the
- comp.unix hierarchy, in particular comp.unix.questions (for basic
- questions) or comp.unix.wizards (for difficult questions). These two
- groups have a common FAQ posting as well.
-
- If you need information about C programming, try comp.lang.c or
- comp.std.c, the latter for Standard ANSI C issues. comp.lang.c has a
- FAQ posting.
-
-
- 1.002: What is the Object Database?
- From: Uwe Geuder <Uwe.Geuder@informatik.uni-stuttgart.de>
-
- AIX stores most of the system management information in /etc/objrepos,
- /usr/lib/objrepos, and /usr/share/lib/objrepos. Files (also referred to
- as system object classes) in these directories are adminstered by the
- Object Database Manager, ODM, which is a set of library routines and
- programs providing basic object oriented database facilities.
-
- Under most circumstances, only SMIT or the commands SMIT call (see
- 1.100) should be used to change the contents of the system object
- classes. A harmless way to look at the object database is to use odmget
- <Class> where <Class> is one of the files in /etc/objrepos.
-
- Experienced users can use the ODM editor, odme, to navigate the database
- in detail. Modifying the database should only be attempted if you know
- exactly what you are doing.
-
-
- 1.003: How do I get rid of the verbose error messages?
-
- Many of the messages from the Unix commands are available in different
- languages. This is controlled by the LANG environment variable, the
- default being En_US meaning English in the US. All the default messages
- have a message number associated with them, e.g.:
-
- $ cat no-such-file
- cat: 0652-050 Cannot open no-such-file.
-
- If you prefer the terser Unix-looking error message, set your
- environment LANG to C, and you will get:
-
- $ cat no-such-file
- cat: Cannot open no-such-file.
-
-
- 1.004: Which release of AIX or other products do I have?
-
- New with 3.2.5: The oslevel command shows OS and component levels.
- Run oslevel -help to see options
-
- The command 'lslpp -h bos.obj' will show all lines referring to the BOS,
- Basic Operating System. E.g.:
-
- Fix Id Release Status Action Date Time User Name
- ------- --------------- --------- ---------- ---------- -------- ---------
- Path: /usr/lib/objrepos
- bos.obj
- 03.02.0000.0000 COMPLETE COMMIT 12/31/69 18:00:00 root
- U401864 03.02.0000.0000 COMPLETE COMMIT 11/12/92 20:09:35 root
- U401968 03.02.0000.0000 COMPLETE COMMIT 11/12/92 23:18:21 root
- U401969 03.02.0000.0000 COMPLETE COMMIT 11/12/92 23:18:20 root
- ..........................
- U418349 03.02.0000.0000 COMPLETE COMMIT 08/28/93 15:34:13 root
- U419950 03.02.0000.0000 COMPLETE COMMIT 08/28/93 15:34:11 root
-
- For AIX 3.2, you may come across discussions on 3.2.0, 3.2.1, 3.2.2,
- 3.2.3 extended, 3.2.4 and 3.2.5. There is no absolute way to tell which
- of these you are running since the newer releases are simply 3.2.0 with
- some sets of PTFs added. See above example listing. These selective
- fixes could mean there are literally thousands of slightly different
- variations of 3.2 in use. Please see section 6 to request some useful
- faxes to help with this number game.
-
- AIX 3.2.4 and later attempts to resolve this confusion. The OS is
- broken down into subsystems so that updates can be applied to an entire
- subsystem. lslpp also sports a new option; use 'lslpp -m bos.obj' to
- show what level and update the system is running. You can also use the
- new oslevel command. Unless you have a pressing need (such as
- applications unsupported on > 3.2.3), it is recommended that you update
- to this level. Also see 1.128.
-
- ______________________________________________________________________________
- 1.100: I am used to Unix systems programming, why should I learn SMIT?
-
- Using SMIT is probably very different from your normal way of doing
- system administration, but could prove very useful in the long run. In
- some areas, in particular TCP/IP, NFS, etc., you can also do things the
- normal way, but it is unfortunately difficult to know exactly when the
- normal way works. Again, always using SMIT is probably your best way
- to go, even when you have to learn a new tool.
-
- What SMIT actually does is build up commands with all required options
- to perform the functions requested and execute them. The commands
- called and the output they produce are stored in the files smit.script
- and smit.log in your home directory. Looking in smit.script may teach
- you more about system administration.
-
-
- 1.101: How do I turn off the "running man" in smit?
-
- Use smitty, the standard curses version or add this line to your .kshrc file:
- alias smit="smit -C"
-
-
- 1.102: How do I import an /etc/passwd or /etc/group file from another box?
-
- Make sure that you run usrck, pwdck (/etc/passwd), and grpck
- (/etc/group) to let AIX work its password/group magic.
-
-
- 1.103: Cleaning up utmp, who, and accounting problems
- From: fritz@scipp.UCSC.EDU (Frederick Staats)
-
- This applies if you are running an X11R5 xterm on 3.2.
- Add this to the top of X11R5 mit/clients/xterm/main.c:
-
- #ifdef AIXV3
- #define USE_SYSV_UTMP
- #define HAS_UTMP_UT_HOST
- #define WTMP_FILENAME "/var/adm/wtmp"
- #endif
-
- And your utmp problems should go away. If you want xterminal sessions
- to go into the wtmp file you need to define -DWTMP in the Imakefile and
- be sure the WTMP_FILENAME is set to the right place.
-
- The following program by jfh@rpp386.cactus.org (John F. Haugh)
- if run in the background by root will clean up the utmp file.
-
- #include <sys/types.h>
- #include <utmp.h>
- #include <fcntl.h>
-
- main ()
- {
- int fd;
- struct utmp utmp;
-
- while (1) {
- if ((fd = open ("/etc/utmp", O_RDWR)) < 0)
- exit (1);
-
- while (read (fd, &utmp, sizeof utmp) == sizeof utmp) {
- if (utmp.ut_type == USER_PROCESS &&
- kill (utmp.ut_pid, 0) != 0) {
- lseek (fd, - (long) sizeof utmp, 1);
- utmp.ut_type = DEAD_PROCESS;
- write (fd, &utmp, sizeof utmp);
- }
- }
- close (fd);
- sleep (60);
- }
- }
-
- Another utmp program was posted to comp.sources.unix, volume 25, issue
- 96 by David W. Sanderson (dws@cs.wisc.edu) that also works on AIX 3.1.
-
-
- 1.104: How to fsck the root filesystem
-
- You can run fsck either in maintenance mode or on mounted filesystems.
- Try this:
-
- 1. boot from diskette
- 2. select maintenance mode
- 3. type /etc/continue hdisk0 exit (replace hdisk0 with boot disk if
- not hdisk0)
- 4. fsck /dev/hd4
-
-
- 1.105: How can I unmount /usr to run fsck on it?
- From: accapadi@mathew.austin.ibm.com (Matt Accapadi)
- [ This is for 3.2. ]
-
- In order to fsck /usr, it has to be unmounted. But /usr cannot be
- unmounted because /bin is symbolically linked to /usr/bin. Also
- /etc/fsck is symbolically linked to /usr/sbin/fsck.
-
- To work around this, when you boot from the boot/maintenance diskettes
- and enter maintenance mode, enter "getrootfs hdisk0 sh" instead of
- "getrootfs hdisk0" where hdisk0 is the name of the boot disk. Then run
- "fsck /dev/hd2".
-
-
- 1.106: How do I shrink /usr?
- From: mike@bria.UUCP (Michael Stefanik) and Richard Hasting
-
- FOR AIX 3.1
- -----------
-
- 1) Make a backup of /usr
-
- find /usr -print | backup -ivf /dev/rmt0 (or appropriate device)
-
- 2) shutdown to maintenance mode
-
- shutdown -Fm
-
- 3) export LANG=C
-
- 4) remove the filesystem and the logical volume
- ignore an error about the "dspmsg" command not found
-
- umount /usr
- rmfs /usr
-
- 5) make a new logical volume hd2 and place it on rootvg with desired size
-
- mklv -yhd2 -a'e' rootvg NNN
-
- where NNN is the number of 4 meg partitions
-
- 6) create a filesystem on /dev/hd2
-
- crfs -vjfs -dhd2 -m'/usr' -Ayes -p'rw'
-
- 7) mount the new /usr filesystem and check it
-
- /etc/mount /usr
- df -v
-
- 8) restore from the tape; system won't reboot otherwise
-
- restore -xvf/dev/rmt0
-
- 9) Sync and reboot the system; you now have a smaller /usr filesystem
-
- FOR AIX 3.2
- -----------
-
- 1) Remove any unneeded files from /usr.
-
- 2) Make sure all filesystems in the root volume group are mounted. If
- not, they will not be included in the re-installed system.
-
- 3) Type mkszfile. This will create /.fs.size that contains a list of
- the active filesystems in the root volume group that will be
- included in the installation procedure.
-
- 4) Edit .fs.size. Change the size of /usr to what you want.
-
- Example: This .fs.size file shows /usr to be 40MB.
-
- rootvg 4 hd2 /usr 10 40 jfs
-
- The 10 is the number of physical partitions for the filesystem and
- the 40 is 40 MB. Most systems have a physical partition size of 4 MB.
- Therefore, the second number (40) will always be 4 times the
- previous number (10). Note, however, that a model 320 with a 120 MB
- drive will have a physical partition size of only 2 MB, and the
- total MB is twice the number of physical partitions. The first
- number (4) in the .fs.size file represents the PP size.
-
- If you want to reduce the size of /usr from 40 MB to 32 MB, edit the
- /usr entry to:
-
- rootvg 4 hd2 /usr 8 32 jfs
-
- IMPORTANT: Make sure that you DO NOT enter a value which is less
- than the size of the filesystem required to contain the current
- data. Doing so will cause the re-installation procedure to fail.
-
- 5) chdev -l rmt0 -a block=512 -T
-
- 6) Unmount all filesystems that are NOT in the root volume group.
-
- 7) Varyoff all user-defined volume groups, if any
-
- varyoffvg VGname
-
- 8) Export the user-defined volume groups, if any
-
- exportvg VGname
-
- 9) With a tape in the tape drive, type
-
- mksysb /dev/rmt0
-
- This will do a complete system backup, which will include
- information (in the .fs.size file) for the installation procedure
- on how large the filesystems are to be created.
-
- 10) Follow the instructions in the Installation Kit under "How to
- Install and perform maintenance from Diskettes" using the
- diskettes and tape that you created in the previous steps.
- DO NOT select the option "Reinstall AIX with Current System
- Settings". Instead use "Install AIX with Current System Settings"
- for the logical volume size changes to take affect.
-
- 11) When the installation is complete, you may then import any
- user-defined volume groups.
-
- importvg -y VGname PVname
-
- where "VGname" is the name of the volume group, and "PVname" is
- the name of any one of the physical volumes in the volume group.
-
- 12) Varyon your user-defined volume groups
-
- varyonvg VGname
-
- The reduction of the filesystems is now complete.
-
-
- 1.107: How do I make a filesystem larger than 2 Gig?
-
- The largest filesystem under AIX is 2 Gigabytes because the largest
- signed integer is 2**31 - 1.
-
- AIX 3.2.5+ can handle filesystems larger than 2 GB.
-
-
- 1.108: How do I see/change system parameters like number of processes
- per user?
-
- You can use SMIT as described below or simply use lsattr/chdev.
- The former will list the current setting as in:
-
- # lsattr -E -l sys0 -a maxuproc
- maxuproc 40 Maximum # of processes allowed per user True
-
- and you can then increase the maxuproc parameter:
-
- # chdev -l sys0 -a maxuproc=200
- sys0 changed
-
- If you just type 'lsattr -E -l sys0' you will get a list of all
- parameters, some of which can be changed but not others.
-
- If you want to use smit, do as follows:
-
- smit
- System Environments and Processes
- Change / Show Operating System Parameters
- - on this screen you can change by overtyping the following fields:
- - Maximum number of PROCESSES allowed per user
- - Maximum number of pages in block I/O BUFFER CACHE
- - Maximum Kbytes of real memory allowed for MBUFS
- - toggle fields exist for:
- - Automatically REBOOT system after a crash (false/true)
- - Continuously maintain DISK I/O history (true/false)
-
-
- 1.109: How do I shrink the default paging space on hd6?
-
- 1) create a paging space to use temporarily
- mkps -s 20 -a rootvg
-
- 2) change default paging space hd6 so it is not used at next reboot
- chps -a n hd6
-
- 3) For AIX 3.1, edit /etc/rc.boot4 and change swapon /dev/hd6;
- for AIX 3.2, edit /sbin/rc.boot and change swapon /dev/hd6
- swapon /dev/paging00
-
- 4) Update information in boot logical volume
- bosboot -a (3.1)
- bosboot -a -d hdisk0 (3.2)
-
- 5) shutdown and reboot
-
- 6) remove current hd6 and create a new one of smaller size
- rmps hd6
- mklv -y hd6 -t paging rootvg <size of PS in 4 Meg blocks>
-
- 7) Re-edit /etc/rc.boot4 (3.1), /sbin/rc.boot (3.2) to swap to /dev/hd6
- swapon /dev/hd6
-
- 8) Update information in boot logical volume
- bosboot -a (3.1)
- bosboot -a -d hdisk0 (3.2)
-
- 9) change current paging device (paging00) so it is inactive at next boot
- v chps -a n /dev/paging00
-
- 10) shutdown, reboot, remove paging00 using the command:
- rmps paging00
-
- You can check your paging space with `lsps -a`
-
- 1.110: The swapper seems to use enormous amounts of paging space, why?
-
- When you run ps, you may see a line like:
-
- USER PID %CPU %MEM SZ RSS TT STAT TIME CMD
- root 0 0.0% 14% 386528 8688 - S 17:06 swapper
-
- This is normal behavior, the swapper looks to ps like it has the entire
- paging space plus real memory allocated.
-
-
- 1.111: How much paging space do I need?
-
- See answer 2 in question 1.300.
-
-
- 1.112: How do I mount a floppy disk as a filesystem?
- From: op@holmes.acc.Virginia.EDU (Olaf Pors)
-
- You can build a filesystem on a floppy and mount it, however the
- filesystem will be read only. The reason that the filesystem will be
- read only is because AIX Version 3.1.5 cannot create a journal log on a
- diskette. The intended use is for temporary access to read only data.
- The diskette file system must be unmounted after use and during system
- backup procedures or errors could occur.
-
- To make the read only filesystem on a floppy:
-
- 1. Make a subdirectory on an existing filesystem and place all of the
- files that the diskette will contain into this subdirectory.
-
- 2. Enter the following command to create a prototype file containing
- information about the new filesystem, in the example /dir_struct
- is the pathname of the subdirectory created in step 1, and
- proto_filename is the name of the prototype file to be created.
-
- proto /dir_struct > proto_filename
-
- 3. Place a formatted floppy into the drive.
-
- 4. Edit the prototype file and replace the first line with the following:
-
- <noboot> 0 0
-
- 5. Enter the following command to make the filesystem on your floppy:
-
- mkfs -p proto_filename -V jfs /dev/fd0
-
- 6. Create the directory upon which you will mount the floppy based
- filesystem, or you can use /mnt. Mount the filesystem:
-
- mount -r -V jfs /dev/fd0 /your_mount_point
-
- 7. To unmount the filesystem:
-
- umount /dev/fd0
-
- Since the filesystem is read-only it may be of limited use but if you
- are going to use it for utility programs and other data that does not
- change much, it may still be useful. If you need to change the data,
- you can copy the directory from the floppy into another directory, make
- your modifications, and remake the filesystem using this procedure.
-
-
- 1.113: How do I remove a committed lpp?
- From: drb@chmeds.ac.nz (Ross Boswell)
-
- This seems to be a common problem. The following script for 3.2 only is
- >from IBM NZ AIX software support. As far as I know, it works -- I used
- it to remove unwanted fonts. I have no official permission to post it
- -- use it at your own risk!
-
- #!/bin/ksh
- #
- # Permanently remove a product from disk and AIX databases
- #
-
- if [ `whoami` != "root" ] ; then
- echo You must be root to run this script.
- exit 1
- fi
-
- if [ `uname -a | awk '{print $1$4$3}'` != "AIX32" ] ; then
- echo This script only works on AIX 3.2.
- exit 1
- fi
-
- TMP_FREE=`df /tmp | awk '$3 ~ /[0-9]/{print $3}'`
- if [ "$TMP_FREE" -lt 1000 ] ; then
- echo There is not enough room in your /tmp directory.
- echo You need 1000 KB free, and you have only $TMP_FREE KB free.
- echo Either remove some stuff from /tmp, or use chfs to make it bigger.
- exit 1
- fi
-
- ODMDIRS="/etc/objrepos /usr/lib/objrepos /usr/share/lib/objrepos"
- ODMDIR=/usr/lib/objrepos
- export ODMDIR
-
- if [ $# -lt 1 ]
- then
- echo usage: $0 lppname [lppname ...]
- echo lppname is a string compatible with grep, ie "X11" or "PHIGS"
- echo typing $0 PHIGS will remove all LPPs with PHIGS in their name.
- exit 1
- fi
-
- NAMES=$1
- shift
- while [ $# -gt 0 ] ; do
- NAMES="$NAMES|$1"
- shift
- done
- echo "Searching for lpps with egrep \"$NAMES\"...\c"
-
- for ODMDIR in $ODMDIRS ; do
- if [ ! -d $ODMDIR -o ! -w $ODMDIR ] ; then
- echo $ODMDIR is not writeable or is not a directory.
- echo I hope this is because you are a /usr client or diskless.
- echo If you are not a diskless or a /usr client, you should stop.
- echo "Enter y to continue ->\c"
- read answer
- if [ "$answer" != "y" ] ; then
- exit 0
- fi
- fi
- TMP=`odmget lpp | awk -F\" '/name/ {print $2}' | egrep "$NAMES"`
- LPPS=`echo $LPPS $TMP`
- done
-
- if [ "$LPPS" = "" ]
- then
- echo "failed.\nNo LPP with the name $NAMES detected."
- exit 1
- fi
- echo ok.
-
- for ODMDIR in $ODMDIRS ; do
- mkdir -p /tmp/rmlpp/$ODMDIR > /dev/null 2>&1
- done
-
- > /tmp/listOfFilesToRM$$ # truncate temporary file, just in case.
- echo
- echo This script is about to attempt to remove an LPP from your system.
- echo I say attempt, because it could fail. If it fails, you may have
- echo to at least reload the LPP. Use the \"lppchk\" command to make sure
- echo all is well with your system.
- echo
- # Loop through all the LPP names found.
- for LPP in $LPPS
- do
- DESCR=none
- answer=""
-
- # find the LPP ids. They will be different in the three SWVPD databases.
- for ODMDIR in $ODMDIRS ; do
- # get the lpp id for this ODMDIR (yes, they are different)
- LPPID=`odmget -q name=$LPP lpp | grep lpp_id | sed 's/.* = //'`
-
- # did we find the LPP?
- if [ "$DESCR" = "none" -a "$LPPID" != "" ] ; then
- # all the descriptions should be the same
- DESCR=`odmget -q name=$LPP lpp | grep description | sed 's/.* = //'`
- echo "Delete $LPP, $DESCR?"
- echo "y or (n) ->\c"
- read answer
- if [ "$answer" != "y" ] ; then # jump back up to the next LPP name
- continue 2
- fi
- fi
- # if there is no DESCR, then we didn't find the LPP. Weird.
- if [ "$DESCR" = "none" -o "$LPPID" = "" ] ; then
- continue
- fi
- SOMETHING_DONE_FLAG=true
- # Optionally, save the ODM stuff we are about to remove,
- # in case something goes wrong. The problem is it is difficult
- # to determine if something really did fail, since these commands
- # don't return any decent error return codes.
- odmget -q lpp_id=$LPPID history > /tmp/rmlpp/$ODMDIR/$LPP.history
- odmget -q name=$LPP lpp > /tmp/rmlpp/$ODMDIR/$LPP.lpp
- odmget -q lpp_name=$LPP product > /tmp/rmlpp/$ODMDIR/$LPP.product
- # Get the list of files and links to remove later....
- odmget -q lpp_id=$LPPID inventory > /tmp/rmlpp/$ODMDIR/$LPP.inventory
- awk -F\" '/loc/ {print $2}' /tmp/rmlpp/$ODMDIR/$LPP.inventory | \
- sed 's/,/ /g' >> /tmp/listOfFilesToRM$$
- odmdelete -o history -q lpp_id=$LPPID > /dev/null 2>&1
- odmdelete -o lpp -q name=$LPP > /dev/null 2>&1
- odmdelete -o product -q lpp_name=$LPP > /dev/null 2>&1
- odmdelete -o inventory -q lpp_id=$LPPID > /dev/null 2>&1
- done
- done
-
- if [ "$SOMETHING_DONE_FLAG" = "true" ] ; then
-
- echo ODM work is done. Now, time to delete files....
-
- # This could be catastrophic if there is a problem. For example,
- # if the ODM database for an application had / as one of its files.
- # You be the judge. Here's your rope....
- cat /tmp/listOfFilesToRM$$ | sort -r | uniq | xargs rm -rf
-
- rm -rf /tmp/listOfFilesToRM$$
- echo done.
- fi
-
- # take this line out if you want to save your ODM saved files.
- rm -rf /tmp/rmlpp
-
- exit 0
-
-
- 1.114: How can I recover space after installing updates?
- From: Milt Cloud <cloud@ux1.cso.uiuc.edu>
-
- Note: If you are a /usr server, do not use this because the files
- mentioned below are needed by /usr clients and cannot be deleted.
-
- Installp creates numerous files in /usr to clean up after
- failed/rejected installs and also for de-installing uncommitted lpps.
- Once you have COMMITted packages you can remove these files safely.
- Depending on your installation activity the numbers can be significant:
- hundreds-to-thousands of files, megabytes of data.
-
- Files eligible for removal are associated with each "product" you have
- installed; the largest collection being due to bos. After
- COMMITting bos lpps, you may safely remove all files of the form:
-
- /usr/lpp/bos/deinstl*
- /usr/lpp/bos/inst_U4*
- /usr/lpp/bosadt/deinstl*
- and /usr/lpp/bosadt/inst_U4*
-
- You may repeat this for all additional COMMITted products (e.g.,
- bostext1, bosnet, xlc) you have on your system.
-
- This problem of lingering install files is a known defect in installp.
- If you have installed PTF U411711 (or any superseder of it: U412397,
- U413366, U413425) the deadwood in /usr will not be quite as prevalent.
- No single PTF currently available completely corrects this problem.
-
- On my own 320, the following freed up 12.4M in /usr:
-
- # rm -R /usr/lpp/bos/deinstl*
- # rm -R /usr/lpp/bos/inst_U4*
-
-
- 1.115: Where are the AIX log files kept?
- From: dirk@kimosabi.ucsc.edu (Dirk Coldewey)
-
- Such as the equivalent of the SunOS file '/var/log/syslog' and
- '/var/adm/messages'.
-
- If you want regular unix syslog files, you can configure syslogd
- in /etc/syslog.conf. Here's the one that I use:
-
- #
- # See the supplied /etc/syslog.conf file for copious comments.
- #
- *.err;kern.debug;auth.notice;user.none /dev/console
- *.err;kern.debug;daemon,auth.notice;mail.crit;user.none /var/adm/messages
- lpr.debug /var/adm/lpd-errs
-
- *.alert;kern.err;daemon.err;user.none operator
- *.alert;user.none root
-
- *.emerg;user.none *
-
- # for loghost machines, to have authentication messages (su, login, etc.)
- # logged to a file, un-comment out the following line and adjust the
- # file name as appropriate.
- #
- # if a non-loghost machine chooses to have such messages
- # sent to the loghost machine, un-comment out the following line.
- #
- auth.notice /var/log/authlog
-
- mail.debug /var/log/syslog
-
- # following line for compatibility with old sendmails. they will send
- # messages with no facility code, which will be turned into "user" messages
- # by the local syslog daemon. only the "loghost" machine needs the following
- # line, to cause these old sendmail log messages to be logged in the
- # mail syslog file.
- #
- user.alert /var/log/syslog
- #
- # non-loghost machines will use the following lines to cause "user"
- # log messages to be logged locally.
- #
- user.err /dev/console
- user.err /var/adm/messages
- user.alert `root, operator'
- user.emerg *
-
-
- 1.116: How can I log information about ftp accesses to a file?
- From: elr@trintex.uucp (Ed Ravin) and
- map@hal.maths.monash.edu.au (Michael Page)
-
- 1) In /etc/syslog.conf, add the line:
- daemon.debug /tmp/daemon.log
-
- 2) # touch /tmp/daemon.log
- # refresh -s syslogd
-
- 3) Modify your inetd.conf so that ftpd is called with the "-l" flag.
- You may also want the "-d" flag. This can be done with 'smit inetdconf'.
-
- All the syslog messages from various system daemons should now appear in
- the file "/tmp/daemon.log".
-
-
- 1.117: How do I find a file name from the inode number?
- From: svpillay@berlioz.crs4.it (Kanthan Pillay)
-
- find /mntpoint -xdev -inum nnnn -print
-
-
- 1.118: How do I set up postscript accounting?
- From: taluskie@utpapa.ph.utexas.edu (Vince Taluskie)
-
- Ephraim Vider originally wrote this program to configure postscript page
- accounting. It acts as a backend wrapper which logs accounting
- information in /etc/qconfig and can be ftp'd from utpapa.ph.utexas.edu
- in /pub/aix/psacct.tar.Z.
-
- Compile with:
-
- cc pswrap.c -o pswrap -lqb
-
- and then make this program suid root:
-
- chown root pswrap
- chmod u+s pswrap
-
- If this step is not done, the printer will hang.
-
- Then start up SMIT and go to :
-
- Spooler
- Manage Local Printer Subsystem
- Local Printer Queue Devices
- Change / Show Characteristics of a Queue Device
- <Select Queue>
- <Select Device>
-
- and change "BACKEND PROGRAM pathname" to the full pathname of pswrap
- since pswrap will now handle the backend interface with the queue.
-
- A stream of info will be written to a logfile in /tmp (prob lp0.log) but
- this file is mainly used for status info and raw pagecounts. If the
- accounting data is going to the qconfig-specified acctfile, then use the
- 'pac' command to read it. I prefer to have readable ascii data files
- instead, so I just comment out the '#define WANT_PAC' line and it will
- only go to the ACCTFILE specfied in pswrap.c.
-
- /* pswrap.c
-
- compile with: cc pswrap.c -o pswrap -lqb
- (for doc on the qb library see "understanding backend routines in libqb")
-
- BTW: The log_charge() function doesn't seem to do anything,
- but log_pages() updates the accounting info.
-
- Ephraim Vider, original author
-
- --
- Feb 10, 1993
-
- You can set pswrap up to use either the accounting file specified in
- /etc/qconfig (which means that you need to get your data from 'pac') or
- you can comment out the #define WANT_PAC line and then the accounting
- data will only go into the ACCTFILE.
-
- Also modified the logging to the ASCII acctfile so that it looks more
- readable.
-
- Vince Taluskie
- */
-
- #include <stdio.h>
- #include <string.h>
- #include <ctype.h>
- #include <fcntl.h>
- #include <signal.h>
- #include <setjmp.h>
- #include <sys/wait.h>
- #include <IN/backend.h>
- #include <IN/standard.h>
- #include "qprocs.h"
-
- char *nextword (char *p);
- char *skipvalue (char *p);
-
- #define LOGDIR "/tmp"
- #define ACCTFILE "/usr/adm/acct/lpr/ps-acct"
- /* #define WANT_PAC 1 */ /* this define will also send accounting
- info to the acctfile specified in
- /etc/qconfig file. If this define is
- commented out then accounting info will
- only go to ACCTFILE */
-
-
- char pcprog[] = "statusdict begin pagecount = end\n\x04";
-
- char *keyw[] = {
- "idle",
- "busy",
- "waiting",
- "printing",
- "initializing",
- NULL
- };
- enum { PS_IDLE, PS_BUSY, PS_WAIT, PS_PRINT, PS_INIT, PS_UNKNOWN };
-
- void giveup();
- jmp_buf jumper;
-
- char logfname[30];
- FILE *logfile, *acctfile;
-
- main (argc, argv)
- int argc;
- char *argv[];
- {
- char *devname;
- int pagcnt, c;
- int pid;
- int w, status;
-
- if (argc < 2) {
- fprintf(stderr, "Usage: psbe file\n");
- exit(-1);
- }
- if (log_init(argv[1]) < 0) {
- fprintf(stderr, "log_init failed!\n");
- exit(EXITBAD);
- }
- sprintf(logfname, "%s/%s.log", LOGDIR, get_device_name());
- if ((logfile = fopen(logfname, "a")) == NULL) {
- fprintf(stderr, "Can't open logfile.\n");
- exit(EXITBAD);
- }
-
- if ((acctfile = fopen(ACCTFILE, "a")) == NULL) {
- fprintf(stderr, "Can't open logfile.\n");
- exit(EXITBAD);
- }
-
- setvbuf(logfile, NULL, _IOLBF, BUFSIZ);
- setvbuf(acctfile, NULL, _IOLBF, BUFSIZ);
-
- setvbuf(stdin, NULL, _IONBF, 0);
- setvbuf(stdout, NULL, _IONBF, 0);
- fprintf(logfile, "start Job no. %d, queued on %s\n", get_job_number(),
- get_qdate());
- log_status(WAITING);
- pagcnt = getpagecnt();
- log_status(RUNNING);
- if ((pid = fork()) < 0) {
- perror("fork");
- exit(EXITBAD);
- }
- if (pid == 0) {
- argv[0] = "piobe";
- execv("/usr/lpd/piobe", argv);
- perror("exec");
- exit(EXITBAD);
- }
- while ((w = wait(&status)) != pid)
- if (w == -1) {
- perror("wait");
- exit(EXITBAD);
- }
- if (WEXITSTATUS(status) != 0)
- exit(WEXITSTATUS(status));
- log_status(WAITING);
-
- if (pagcnt > 0 && (c = getpagecnt()) > 0) {
- #ifdef WANT_PAC
- log_pages(c - pagcnt);
- #endif
- }
-
- fprintf(logfile, "end Job no. %d, queued on %s\n", get_job_number(),
- get_qdate());
-
- /* the accounting file format is
-
- pages_printed user queue_printed_on time_queued
-
- */
-
- fprintf(acctfile, "%d %35s %7s %s \n", (c - pagcnt), get_from(), get_queue_name(), get_qdate());
-
- fclose(logfile);
- fclose(acctfile);
- exit(EXITOK);
- }
-
- void giveup ()
- {
- longjmp(jumper, 1);
- }
-
- getpagecnt ()
- {
- int pc = 0, pstat;
- char buf[81];
-
- if (setjmp(jumper) != 0) {
- fprintf(logfile, "giving up on status\n");
- return (0);
- }
- alarm(60 * 2);
- signal(SIGALRM, giveup);
- do {
- if (!gets(buf)) {
- sleep(5);
- putchar('\x14'); /* ^T returns status */
- sleep(1); /* wait for answer from printer */
- if (!gets(buf))
- return (0);
- }
- fprintf(logfile, "%s\n", buf);
- if ((pstat = getstatus(buf)) == PS_WAIT) {
- putchar('\x04');
- sleep(1);
- }
- } while (pstat != PS_IDLE);
- alarm(0);
- while (gets(buf))
- fprintf(logfile, "%s\n", buf);
- printf("%s", pcprog);
- sleep(1); /* wait for answer from printer */
- if (!gets(buf))
- return (0);
- if (sscanf(buf, "%d", &pc) != 1)
- return (0);
- fprintf(logfile, "%d\n", pc);
- return (pc);
- }
-
- /*
- * Parser for printer status messages
- */
-
- getstatus (p)
- char *p;
- {
- char *t;
- int i;
-
- if ((p = strchr(p, '%')) == NULL)
- return (PS_UNKNOWN);
- if (strncmp(p, "%%[", 3) != 0)
- return (PS_UNKNOWN);
- for (p = nextword(p + 3) ; p != NULL ; p = skipvalue(p)) {
- t = p;
- p = strchr(p, ':');
- *p++ = '\0';
- p = nextword(p);
- if (strcmp(t, "status") == 0)
- break;
- }
- if (p == NULL)
- return (PS_UNKNOWN);
- t = p;
- p = strchr(p, ' ');
- if (p[-1] == ';')
- p--;
- *p = '\0';
- for (i = 0 ; keyw[i] != NULL ; i++)
- if (strcmp(t, keyw[i]) == 0)
- break;
- return (i);
- }
-
- char *nextword (p)
- char *p;
- {
- while (isspace(*p))
- p++;
- if (strncmp(p, "]%%", 3) == 0)
- return (NULL);
- return (p);
- }
-
- char *skipvalue (p)
- char *p;
- {
- char *t;
-
- while (p != NULL) {
- p = strchr(p, ' ');
- t = p;
- p = nextword(p);
- if (t[-1] == ';')
- break;
- }
- return (p);
- }
-
- /********* qprocs.h ***********/
- /* functions for communication between qdaemon and the backend */
-
- char *get_from();
- char *get_to();
- char *get_qdate();
- char *get_queue_name();
- char *get_device_name();
- char *get_title();
-
-
- 1.119: How do I create boot diskettes for 3.2?
-
- You need to have four formatted diskettes.
-
- boot disk: bosboot -d /dev/fd0 -a
- display disk: mkdispdskt
- display extension disk: mkextdskt
- Install/Maintenance disk: mkinstdskt
-
-
- 1.120: Where can I find tools for performance monitoring?
-
- Free X based performance watcher: xsysstats - ftp site ftp.x.org:/contrib
-
- For 3.2 a few tools are available in /usr/lpp/bosperf. There are tools
- to monitor traces, I/O events, CPU, virtual memory, disk block usage,
- kernel extensions, etc. It even has a simulator, rmss, that allows one
- to try out different memory size configurations to see how it impacts
- performance. See 6.05 for the AIX Performance and Tuning Guide.
-
-
- 1.121: How can I tell what virtual printer a print queue is using?
- From: yoder@austin.ibm.com (Stuart R. Yoder)
-
- Use the command 'lsvirprt'. Don't use any parameters and it will
- run in an interactive mode that will give you a menu of all virtual
- printers on the system with the queue and device for each one.
-
-
- 1.122: Two srcmstr's are less useful than one?
- From: hubert@rs530.ncs.mainz.ibm.com (Bernhard Zeller)
-
- This can happen on systems that have no console, or systems with an
- async terminal as the console but not attached or turned off. One of the
- symptoms is a second srcmstr got run. But the second srcmstr is worthless
- as we can't use the stop/startsrc commands, refresh inetd, qdaemon won't
- start, etc.
-
- To resolve this, type:
-
- smit chgtty
-
- and add the keyword 'clocal' in following lines:
-
- STTY attributes for RUN TIME
- STTY attributes for LOGIN
-
-
- 1.123: How do I set the tty name associated with a physical port?
- From: accapadi@mathew.austin.ibm.com (Matt Accapadi)
-
- Let's say you wanted to make a tty on the s1 port and call it rs0000
- and a tty on the s2 port and call it rs0001.
-
- You could run:
-
- mkdev -c tty -s rs232 -t tty -l rs0000 -p sa0 -w s1 # creates rs0000
- and
- mkdev -c tty -s rs232 -t tty -l rs0001 -p sa1 -w s2 # creates rs0001
-
-
- 1.124: How do I use mksysb to clone a system?
- From: joann@ariadne.SLAC.Stanford.EDU (Jo Ann Malina)
-
- I use the following steps on the master machine to clone an AIX system:
- 1) Remove the password from root.
- 2) Remove the NIS line from the end of the /etc/group file (the last
- line with the +: )
- 3) Change most of the level '2' designations in /etc/inittab to level
- '3' to prevent them from being started up when the new system is
- booted (the minimum ones to change are rc.nfs and rc.tcpip)
- 4) Boot in service mode and change the name and ip address to a "spare"
- set to avoid address collision.
- 5) Clear /tmp, /usr/tmp and /usr/spool/lpd/stat.
- 6) Run mkszfile and edit it to be sure /usr is as small as possible;
- then mksysb from the command line.
-
- The above changes allow me to boot in normal mode the first time, get in
- as root, change the above files back and do the other things necessary
- to configure the new system.
-
- Then, of course, I go back and clean up and reboot my master machine.
-
- Note: 1 and 2 lets you log in even if you can't get on the network.
- It prevents the login process from trying to reach an NIS server.
- Step 2 needed only if you use NIS.
-
-
- 1.125: How do I retain timestamps with mksysb?
- From: graeme@ccu1.aukuni.ac.nz ( Graeme Moffat)
-
- In /usr/lpp/bosinst/bosnet (for net installs), and bosrest (tape), the
- 'pax' commands all have '-pmop' options. m = "DON'T retain modification
- times". So, simply change all the '-pmop' to '-pop' and remake
- inst/maint diskettes or mksysb tapes.
-
-
- 1.126: How can I find out the machine type?
- From: umar@compsci.cas.vanderbilt.edu (Sait Umar)
-
- #!/bin/sh
- #
- # Author G. Vitillaro (peppe@ipgaix.unipg.it)
- # from an idea of Marc Pawliger (marc@ibmpa.awdpa.ibm.com)
- #
- # 10/12/92 GVT First (and last) implementation
- #
- # machine : will get machine type on RISC/6000
- #
- #
- awk '
- BEGIN {
- m["10"]="7013/530 or 7016/730";
- m["11"]="7013/540";
- m["14"]="7013/540";
- m["18"]="7013/530H";
- m["1C"]="7013/550";
- m["20"]="7015/930";
- m["2E"]="7015/950";
- m["2E"]="7015/950E";
- m["30"]="7013/520";
- m["31"]="7012/320";
- m["34"]="7013/520H";
- m["35"]="7012/320H or 320E";
- m["37"]="7012/340";
- m["38"]="7012/350";
- m["41"]="7011/220";
- m["43"]="7011/M20";
- m["46"]="250/PowerPC";
- m["47"]="230/RSC";
- m["5C"]="7013/560";
- m["63"]="7015/970";
- m["64"]="7015/980";
- m["66"]="7015/580";
- m["67"]="7015/570";
- m["70"]="590/POWER2";
- m["71"]="580H";
- m["75"]="7012/370, 375, or 37T";
- m["76"]="7012/360, 365, or 36T";
- m["77"]="7012/350, 355, or 7013/550L";
- m["78"]="7012/315 or 7013/510 ";
- m["80"]="990/POWER2";
-
- You should request anyone with a model N40 run 'uname -m | cut -c9-10'
- so you can add an entry for it.
- if ( m[code] != "" )
- print "This RISC/6000 is a " m[code];
- else
- print "Unknown Machine";
- }
- ' code=`uname -m | cut -c9-10` < /dev/null
-
-
- 1.127: Updating to 3.2.5
- From: kraemerf@franvm3.VNET.IBM.COM (Frank Kraemer)
-
- (Ed. The following is useful if you have to update a large number of
- systems, large being > 3.)
-
- *** WARNING : Modify the scripts if you need dataless, diskless ***
- *** or remote /usr support. ***
-
- 1) Receive the PMP3250 tape from your AIX support center the PTF number
- is U493250.
-
- 2) Create a filesystem with 240 MB of space (60 PP's) and mount it as
-
- /dev/pmp3250 - /pub/pmp3250
-
- 3) Insert the tape (blocksize is 512) and install PTF U422467
-
- # installp -BXacgq -d /dev/rmt0 bos.obj 3.2.0.0.U422467
-
- 4) Use the following script to load the tape in the new filesystem
-
- # cd /pub/pmp3250
- # mktape2disk.sh 0 447 <<-- read 447 files from rmt0
-
- =-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
- #!/bin/ksh
- # @(#) mktape2disk.sh creates files from tape on disk.
-
- # change name prefix here
- NAME="f"
-
- # from file #i to file #j
- integer i=1
- integer j
-
- # test arguments
- if [ -z "${1}" ]
- then
- echo "\nusage: $(basename ${0}) <drive_no> <#files>\n"
- echo "\t<drive_no>: tape drive number (e.g. 0)"
- echo "\t<#files> : number of files to copy from the tape\n"
- exit 1
- fi
- device=/dev/rmt${1}.1
-
- # test arguments
- if [ -z "${2}" ]
- then
- echo "\nusage: $(basename ${0}) <drive_no> <#files>\n"
- echo "\t<drive_no>: tape drive number (e.g. 0)"
- echo "\t<#files> : number of files to copy from the tape\n"
- exit 1
- fi
- j=${2}
-
- tctl -f ${device} rewind
- if [ $? -ne 0 ]
- then
- exit 1
- fi
-
- # create tape
- while [ ${i} -le ${j} ]
- do
- echo "Copy file #${i} of #${j} from (${device}) to disk as (${NAME}${i})."
- dd if=${device} of="${NAME}${i}" bs=200k
- i=i+1
- done
- tctl -f ${device} rewind
- exit 0
- =-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
-
- 5) Create a new .toc file
-
- # cd /pub/pmp3250
- # inutoc .
- # pg .toc
-
- 6) Place the following file named 'runme.sh' in the PMP directory
-
- =-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
- #!/bin/ksh
- # @(#) runme.sh for PMP3250
- #
- INSTP="/usr/sbin/installp"
- LOG="/tmp/installp.log"
- TEE="/usr/bin/tee"
- PATCHDIR=$(pwd)
- #
- /usr/bin/cp /usr/lpp/info/data/ispaths /usr/lpp/info/data/ispaths.save
- #
- INFODIR="/usr/lpp/info/$LANG/aixmin"
- /usr/bin/mkdir ${INFODIR} 2>/dev/null >/dev/null
- if [ ! -w ${INFODIR} ]
- then
- print "\n\t*ERROR* Can not (write) access [${INFODIR}]."
- print "\tPlease unmount CD or NFS filesystems.\n"
- exit -1
- fi
- #
- # Commit all ptf's
- #
- ${INSTP} -Xc all 2>&1 | ${TEE} ${LOG}.0
- #
- # Install latest installp patch
- #
- ${INSTP} -BXacgq -d ${PATCHDIR} bos.obj 3.2.0.0.U422463 2>&1 | ${TEE} ${LOG}.1
- #
- # Install latest installp patch
- #
- ${INSTP} -BXacgq -d ${PATCHDIR} bos.obj 3.2.0.0.U422467 2>&1 | ${TEE} ${LOG}.6
- #
- # Run the ptfdir clean utility.
- #
- /usr/sbin/ptfdir_clean -y -f -v 2>&1 | ${TEE} ${LOG}.2
- #
- # Install the PMP. Version 1
- #
- /usr/lib/instl/sm_inst installp_cmd \
- -T m -q -a -g -B \
- -d ${PATCHDIR} \
- -S '3250 AIX Maintenance Level U493250' \
- -c -N -X \
- 2>&1 | ${TEE} ${LOG}.3
- #
- # Install the PMP. Version 2
- #
- # /usr/sbin/update_all
- #
- # Install latest installp patch
- #
- /usr/bin/lppchk -v | ${TEE} ${LOG}.4
- #
- # Show level of installp patch
- #
- /usr/bin/lslpp -m bos.obj | ${TEE} ${LOG}.5
- #
- # Guess you should reboot now.
- #
- sync;sync
- print - "\n\n\tDone......guess you should reboot now !!\n"
- exit 0
- =-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
-
- 7) To run the update on your server
-
- ===>> Please read the Installation Instructions first <<==
-
- # cd /pub/pmp3250
- # ./runme.sh
-
- ........WAIT...........
-
- # /etc/shutdown -Fr
-
- 8) NFS export the PMP dir as READ-ONLY to all your clients.
-
- 9) To update a client system
-
- a - Mount the PMP filesystem from the server
- b - cd <mounted_filesystem>
- c - execute ./runme.sh
- d - Unmount PMP filesystem
- e - reboot
-
- 10) To create a copy 1:1 of the tape you received use the script 'mktape.sh'
-
- # cd /pub/pmp3250
- # mktape.sh 0
-
- =-=-=-=-=-=-=-= cut here =-=-=-=-=-=-=-=-=-=-=
- #!/bin/ksh
- # @(#) mktape.sh: creates a bootable tape from images on disk
-
- # change name prefix here
- NAME="f"
-
- # usage: mktape drive_no
- # drive_no = tape drive number
- # test arguments
- if [ -z "${1}" ]
- then
- echo "\nusage: mktape <drive_no>"
- echo " <drive_no>: tape drive number (e.g. 0)\n"
- exit 1
- fi
- device=/dev/rmt${1}.1
-
- tctl -f ${device} rewind
- if [ $? -ne 0 ]
- then
- exit 1
- fi
-
- # create tape
- i=1
- while test -r "${NAME}${i}"
- do
- echo "copy ${i}"
- if [ $i -le 3 ]
- then
- dd if="${NAME}${i}" of=${device} conv=sync bs=1k
- else
- dd if="${NAME}${i}" of=${device} bs=200k
- fi
- let i=${i}+1
- done
- tctl -f ${device} rewind
- exit 0
-
-
- 1.128: AIX fix strategy
- From: leedp@austin.ibm.com (Dennis Lee, PMP Release Manager)
-
- First, a little history...
-
- The maintenance strategy for AIX 3.1 was cumulative updates. Every few
- months, we'd put all available fixes in one large package and ship it.
- There was no real strategy for providing a single fix. Although we'd
- occasionally produce an emergency patch, there was no method for
- tracking them; if you got a second one, it might overwrite the first.
- So, after a few of these patches, it's hard to track.
-
- In AIX 3.2 we introduced a "selective fix" strategy to support
- individual fixes. The package contained information about other fixes
- that were required for that fix to work correctly. For example, a Korn
- shell fix might require a change in libc.a, which might in turn require
- a fix in the kernel. This strategy allowed us to keep track of which
- fixes were installed to make sure we didn't overwrite one with another,
- and make sure they all worked together. But the initial selective fix
- design still had a few problems.
-
- o None of the fixes were cumulative. If you got a fix for Korn shell,
- you may not receive all of the fixes for Korn shell. This left the
- possibility of rediscovering other problems that were already fixed.
-
- o Since we chose to fix everything possible that was reported as a
- problem, instead of deferring them to the next release, the number
- of available fixes became quite large.
-
- o The number of additional fixes required by any given fix could also
- be quite large. Since the installation program ran once for each
- fix, the size and complexity of the fix packages grew, and
- installation time lengthens greatly.
-
- While developing the AIX 3.2.4 upgrade, we undertook a large effort to
- resolve the selective fix concerns, and dramatically increase the
- quality of AIX 3.2. The base operating system and most of the optional
- program products were split into subsystems. A subsystem is a group of
- logically related files. The division was made such that changes to a
- given subsystem were less likely to affect other subsystems. In total
- there are approximately 500 subsystems, but in practice, files have been
- modified in only about half of them. The advantages of the new
- packaging strategy are:
-
- o Each subsystem package is cumulative, containing all of the fixes
- and enhancements to date for that subsystem.
-
- o The cumulative subsystem package is tested as an entity.
-
- o The number of fix packages is greatly reduced because the number of
- subsystems is far fewer than the number of fixes and enhancements.
-
- o The number of other fixes required by any given fix is also greatly
- reduced because a subsystem package has requisites only on other
- subsystem packages.
-
- o The reduced number of fix packages greatly reduced installation time.
-
- Some customers also told us that they liked the maintenance level
- strategy that we used in AIX 3.1. They liked being able to install all
- of the known fixes, and they liked knowing what "level" of AIX they had.
- To meet these requirements, we produced a Preventive Maintenance Package
- (PMP). The PMP is simply a collection of the latest cumulative
- subsystem packages tied together in such a way that it can be installed
- by selecting a single fix. We also added flags to the lslpp command and
- added a new command, oslevel, to show which PMP is installed. Now we
- had both! The good attributes of selective fix along with the good
- attributes of maintenance levels.
-
- A few Q&As:
-
- Q. Why is the fix I just received 130 megabytes!@#? I already have the
- AIX 3.2.4 update installed!
- A. Your fix may be part of the AIX 3.2.5 update. AIX 3.2.5 is another
- PMP that contains all of the fixes to date, as well as enhancements
- to support the PowerPC model 250, and the new high-end RS/2 models
- 590 and 990, as well as support for new disk and tape drives, graphics
- adapters and more.
-
- Q. Why can't you just build my fix on 3.2.4?
- A. There really isn't such a thing as 3.2.1 or 3.2.2 or even 3.2.4.
- They're just collections of fixes and enhancements built on a 3.2 base.
- If the fix for your problem was built prior to 3.2.5, you can get the
- older version. But if your fix was built for the first time in a 3.2.5
- subsystem, that's the only version of the fix that exists.
-
- See also 6.02.
-
-
- 1.129: Are passwords limited to 8 char?
-
- AIX passwords are only significant to 8 characters. You can set a
- passwd to more than 8 characters but anything over eight are ignored.
- No messages or warnings are given.
-
- Be careful if you're running NIS. You probably want to limit passwords
- to 8 char on all machines (6000 and others) to be compatible.
-
- Someone mentioned that DCE supports kerberos which supports passwords
- greater than 8 characters.
-
-
- 1.130: How do I increase the number of ptys > 64?
- From: mick@oahu.cern.ch (Mickey Coggins)
-
- SMIT only allows 64. Try this:
-
- odmget -q"attribute=num and uniquetype=pty/pty/pty" PdAt |
- sed "s/0-64/0-512/" |
- odmchange -q"attribute=num and uniquetype=pty/pty/pty" -o PdAt
-
- chdev -l pty0 -anum=256 -P
- reboot
-
-
- 1.131: CERT advisories on sendmail and xterm
-
- The following fixes are available for some CERT advisories on problems
- with sendmail and xterm.
-
- sendmail - fix available as U426396
- xterm for X11R4 - fix available as U422575
- xterm for X11R5 - fix available as U425811
-
-
- 1.200: Some info about tape backups
- From: Craig Anderson
-
- The following supplements the information on rmt devices in
- InfoExplorer. It is based on my own personal experience with IBM tape
- drives running on AIX 3.1. No warranty is expressed or implied.
-
- CONFIGURING THROUGH SMIT:
- BLOCK size (0=variable length) (ALL)
- Sets the tape block size. When reading, the block size must be
- set to the block size set when the tape was written. When
- using some commands, tapes written with ANY block size can be
- read if the block size is set to 0 (variable length) (see
- "BLOCK SIZES" below).
-
- Use DEVICE BUFFERS during writes (ALL)
- Set to yes, the device will buffer data internally on writes.
- This greatly improves performance, but under certain cases may
- be undesirable since the data is not written to tape before
- returning a good indication.
-
- Use EXTENDED file marks (8mm only)
- Extended file marks take up much more space than short (or
- non-extended) file marks. But extended file marks can be
- overwritten, allowing data not at the beginning of tape to be
- overwritten (see "FILE MARKS" below).
-
- RETENSION on tape change or reset (1/4" only)
- If set to "no" then the tape will not be retentioned
- automatically when the tape is inserted. Note that this will
- take effect only after the device is used.
-
-
- FILE MARKS:
- Tape devices support multiple tape files. Tape files are the
- result of a backup/cpio/tar/dd type command, where the device is
- opened, written to, and closed. Because tapes allow large
- quantities of data to be written on a single tape, several backups
- (that is, tape files), may be combined on one physical tape.
- Between each tape file is a "tape file mark" or simply "file
- mark". These file marks are used by the device driver to indicate
- where one tape file ends and another begins.
-
- B E
- <------- O O ------->
- T T
- __ ____________________________ _______________
- physical | \ | | \ |physical
- beginning| \ | tape | \ | end
- of | \ | file | \ | of
- tape | \ | mark | \ | tape
- |_____\________|_______|__________\_________|
-
- Note that there is a distinction between the beginning of tape
- (BOT) side of a file mark and the end of tape (EOT) side of a file
- mark. If the head is on the BOT side of a file- mark, "tctl fsf
- 1" command will move only to the EOT side of the same file mark.
-
- With the 1/4" tape drive, writing can only take place
- sequentially, or after blank tape has been detected. You cannot
- write over data on the tape (except at BOT). If you wish to add
- data to a tape which has been written and then rewound you should
- space forward file mark until an error occurs. Only then can
- you start writing again.
-
- With an 8mm tape drive, writing can only take place before blank
- tape, an EXTENDED file mark, or at BOT. Thus if several backups
- have been made on one tape and you wish to overwrite one of the
- backups, position the tape to the place you wish to start writing
- and issue the following commands:
- tctl bsf 1
- tctl eof 1
- The first command skips back to the BOT side of the same file
- mark. The second command rewrites the file mark (writing is
- allowed before extended file marks). The erase head will erase
- data ahead of the write head, so that after writing the file mark
- the head will be positioned before blank tape. Only after this
- may you start writing over data in the middle of the tape. (All
- data beyond where you are currently writing will be lost). Note
- that you cannot write over short file marks. In order for this to
- work, the tape must have been written with extended file marks
- (use smit to change this).
-
- With the 9-track drive writing can take place anywhere on the
- tape although overwriting single blocks of data is not supported.
-
- On the 8mm drive extended filemarks use 2.2 megabytes of tape and
- can take up to 8.5 seconds to write. Short filemarks use 184K
- and take up to 1.5 seconds to write.
-
- BLOCK SIZES:
- When data is written to tape it is written in blocks. The blocks
- on a tape are separated by inter-record gaps. It is important to
- understand the structure of the written tape in order to
- understand the problems which can occur with changing block
- sizes.
-
- In fixed block size mode all blocks on the tape are the same
- size. They are the size of the block size set in the device
- configuration. All read()s and write()s to the tape drive must be
- a multiple of the fixed block size.
-
- In fixed block mode a read() will return as many blocks as needed
- to satisfy the read() request. If a file mark is encountered
- while reading the tape only the data up until the file mark will
- be returned.
-
- It is not possible for the tape drive to read a tape whose block
- size is not the same as the block size in the device
- configuration. (Unless the device configuration is in variable
- size blocks.)
-
- In variable block size (0) mode, the blocks written on the tape
- are the size of the read() and write() requests to the device
- driver. In this case, the actual block sizes on the tape can be
- changed using the options to the backup commands (tar -C, cpio -C,
- backup -C).
-
- In variable mode, read() requests greater than size of the block
- on the tape will return only the data from the next block on the
- tape. It is this feature that allows tapes written in any block
- size (fixed or variable) to read with the dd command (the output
- from the dd command may be piped to restore, tar, or cpio for
- example.) Note that backup, tar, and cpio cannot read all tapes
- by using a large block size because they assume there is an error
- if they get a short read().
- dd ibs=128k obs=16k if=/dev/rmt0 | ...
-
- The tape head is always positioned at an inter-record gap, file
- mark, or blank tape after reading or writing.
-
- With the 8mm tape drive, using a fixed block size which is not a
- multiple of 1K is inefficient. The 8mm tape drive always writes
- internally in 1K blocks. It simulates the effect of variable
- block sizes, but, for example, using a fixed block size of 512
- bytes (or using variable block size and write()ing 512 bytes at a
- time) wastes one half of the tape capacity and gives only one half
- the maximum transfer rate.
-
-
- EXCHANGING DATA WITH NON-UNIX AND OTHER VENDORS MACHINES:
- Many tape drives support both variable and fixed block sizes.
-
- Variable block mode writes block sizes the size of the write
- command issued (tar and backup specify this with the -b option).
- In fixed mode, block sizes are fixed and all writes must be a
- multiple of the fixed block size.
-
- Unix often internally chops larger reads and writes up into
- manageable pieces (often 65535, 65534, or 65532 bytes) before
- doing the actual reads and writes. This means reads and writes of
- 64K bytes are often broken up into a 65535 byte record and a 1
- byte record (In fixed mode the write will fail). Block sizes >=
- 64K (-C128 and greater) should be avoided for this reason. AIX
- does not break up read and write requests, but be aware of the
- situation on other machines.
-
- If the tape is written in an unknown block size then set the
- device configuration in smit to use variable size blocks, use the
- "dd" command with a large input block size, and pipe it to the
- restore command. For example:
- chdev -l rmt0 -a block_size=0
- dd if=/dev/rmt0 ibs=128k obs=16k | tar -tvf-
-
-